(deftemplate intrebare
	(slot sintrebare)
    (slot raspuns)    
)

(deftemplate credit
	(slot nume)    
)

(assert (intrebare (sintrebare nil)(raspuns nil)))

(defrule a1
    (intrebare (sintrebare nil)(raspuns nil))

    =>
    
	(printout t "Sunteti angajat pe perioada nedeteminata ? (DA/NU)" crlf)
	(bind ?r (read))
	(assert (intrebare (sintrebare "Sunteti angajat pe perioada nedeteminata?")(raspuns ?r)))
)

(defrule a1_1
    (intrebare (sintrebare "Sunteti angajat pe perioada nedeteminata?")(raspuns DA))

    =>
    
	(printout t "Mai aveti credite ? (DA/NU)" crlf)
	(bind ?r (read))
	(assert (intrebare (sintrebare "Mai aveti credite ?")(raspuns ?r)))
)

(defrule a1_2
    (intrebare (sintrebare "Sunteti angajat pe perioada nedeteminata?")(raspuns NU))

    =>
    
	(printout t "Ne pare reau dar nu va putem acorda creditul!" crlf)
)

(defrule a1_1_1
    (intrebare (sintrebare "Mai aveti credite ?")(raspuns DA))

    =>
    
	(printout t "Ne pare reau dar nu va putem acorda creditul!" crlf)
)

(defrule a1_1_2
    (intrebare (sintrebare "Mai aveti credite ?")(raspuns NU))

    =>
    
	(printout t "Ce varsta aveti ? (DA/NU)" crlf)
	(bind ?r (read))
	(assert (intrebare (sintrebare "Ce varsta aveti ?")(raspuns ?r)))
)

(defrule a1_1_2_1
    (intrebare (sintrebare "Ce varsta aveti ?")(raspuns ?r | :(<= ?r 21) | :(=> ?r 45)))
	
    =>
    
	(printout t "Ne pare reau dar nu va putem acorda creditul!" crlf)

)

(defrule a1_1_2_2
    (intrebare (sintrebare "Ce varsta aveti ?")(raspuns ?r & :(> ?r 21) & :(< ?r 45)))
	
    =>
    
	(printout t "Ce venit aveti?(RON)" crlf)
    (bind ?r (read))
	(assert(intrebare (sintrebare "Ce venit aveti ?") (raspuns ?r)))
)

(defrule a1_1_2_2_1
    (intrebare (sintrebare "Ce venit aveti ?")(raspuns ?r & :(< ?r 1500)))
	
    =>
    
	(assert(credit (nume "Credit pe termen scurt")))
)

(defrule a1_1_2_2_2
    (intrebare (sintrebare "Ce venit aveti ?")(raspuns ?r & :(>= ?r 1500) & :(< ?r 2000)))
	
    =>
    
    (assert(credit (nume "Credit pe termen scurt")))
	(assert(credit (nume "Credit pe termen mediu")))
)

(defrule a1_1_2_2_3
    (intrebare (sintrebare "Ce venit aveti ?")(raspuns ?r & :(>= ?r 2000) & :(< ?r 3000)))
	
    =>
    
    (assert(credit (nume "Credit pe termen scurt")))
    (assert(credit (nume "Credit pe termen mediu")))
	(assert(credit (nume "Credit pentru nevoie personale")))
)

(defrule a1_1_2_2_4
    (intrebare (sintrebare "Ce venit aveti ?")(raspuns ?r & :(>= ?r 3000)))
	
    =>
    
    (assert(credit (nume "Credit pe termen scurt")))
    (assert(credit (nume "Credit pe termen mediu")))
	(assert(credit (nume "Credit pentru nevoie personale")))
	(assert(credit (nume "Credit PRIMA CASA")))
)

(defrule mesaj
    (declare (salience -1))
	(intrebare (sintrebare nil))

    =>
  
	(printout t "Aveti acces la urmatoarele credite:" crlf crlf)

)


(defrule credite_posibile
    (declare (salience -2))
    (credit 
    	(nume ?n)
    )
    
	=>
    
    (printout t ?n crlf)    
)

(run)





